package com.khotyn.heresy.dao;

import java.util.List;

import com.khotyn.heresy.bean.Tag;

/**
 * 标签DAO
 * @author 黄挺
 *
 */
public interface TagDAO {
	/**
	 * 将标签Bean插入数据库中
	 * @param tag 标签Bean
	 * @return 新记录主键
	 */
	public Integer insertTag(Tag tag);
	
	/**
	 * 根据标签ID来查找标签
	 * @param tagID 标签ID
	 * @return 标签Bean
	 */
	public Tag selectTagByID(Integer tagID);
	
	/**
	 * 根据标签名字来查找标签
	 * @param tagName 标签名字
	 * @return 标签Bean
	 */
	public Tag selectTagByName(String tagName);
	
	/**
	 * 根据图片ID读取一张图片的所有标签
	 * @param pictureID 图片ID
	 * @return 一张图片的所有标签
	 */
	public List<Tag> selectTagByPictureID(String pictureID);
	
	/**
	 * 根据下个相册ID读取一个下个相册的所有标签
	 * @param albumID 相册ID
	 * @return 一个相册的所有标签
	 */
	public List<Tag> selectTagByAlbumID(Integer albumID);
	
	/**
	 * 根据相册ID和标签ID向相册标签表插入新的记录
	 * @param albumID 相册ID
	 * @param tagID 标签ID
	 * @return 新记录主键
	 */
	public Integer insertAlbumTag(Integer albumID, Integer tagID);
	
	/**
	 * 根据相册ID和标签ID删除相册标签表里的记录
	 * @param albumID 相册ID
	 * @param tagID 标签ID
	 * @return 影响行数
	 */
	public int deleteAlbumTag(Integer albumID, Integer tagID);
	
	/**
	 * 根据相册ID删除所有的相册标签关系
	 * @param albumID 相册ID
	 * @return 影响行数
	 */
	public int deleteAlbumTagByAlbumId(Integer albumID);
	
	/**
	 * 向图片标签表里插入新的标签
	 * @param pictureID 图片ID
	 * @param tagID 标签ID
	 * @return 影响行数
	 */
	public Integer insertPictureTag(String pictureID, Integer tagID);
	
	/**
	 * 从相册标签表里删除标签
	 * @param pictureID 图片ID
	 * @param tagID 标签ID
	 * @return 影响行数
	 */
	public int deletePictureTag(String pictureID, Integer tagID);
	
	/**
	 * 根据相册ID删除所有的相册标签关系
	 * @param pictureID 图片ID
	 * @return 影响行数
	 */
	public int deletePictureTagByPictureId(String pictureID);
}
